import greenfoot.*;  

public class TextField extends Actor {
    private String text = "";
    private GreenfootImage image;

    public TextField(int width) {
        image = new GreenfootImage(width, 30);
        updateImage();
    }

    public void act() {
        handleInput();
    }

    private void handleInput() {
        if (Greenfoot.isKeyDown("backspace")) {
            if (text.length() > 0) {
                text = text.substring(0, text.length() - 1); // 删除最后一个字符
                updateImage();
            }
        } else {
            for (char c = 'A'; c <= 'Z'; c++) {
                if (Greenfoot.isKeyDown("" + c) || Greenfoot.isKeyDown("" + Character.toLowerCase(c))) {
                    text += c;
                    updateImage();
                    return; // 只处理一个字符
                }
            }
            for (char c = '0'; c <= '9'; c++) {
                if (Greenfoot.isKeyDown("" + c)) {
                    text += c;
                    updateImage();
                    return; // 只处理一个字符
                }
            }
            if (Greenfoot.isKeyDown("X")) {
                text += "X"; // 允许用户输入 'X'
                updateImage();
            }
        }
    }

    private void updateImage() {
        image.setColor(Color.WHITE);
        image.fill();
        image.setColor(Color.BLACK);
        image.drawString(text, 5, 20); // 在文本框内显示文本
        setImage(image); // 更新图像
    }

    public String getText() {
        return text;
    }
}
